import {ElLoading, ElMessage, ElMessageBox, ElNotification} from 'element-plus'

let loadingInstance;

const $modal = {
    //操作成功-快捷默认提示 “操作成功”
    success(message = "操作成功", duration = 1500) {
        ElMessage.success({message, duration})
    },
    //操作取消-快捷默认提示 “操作已取消”
    cancel(message = "操作已取消", duration = 1500) {
        ElMessage.warning({message, duration})
    },
    // 消息提示
    info(message, duration = 3000) {
        ElMessage.info({message, duration})
    },
    // 错误消息
    error(message, duration = 3000) {
        ElMessage.error({message, duration})
    },
    // 警告消息
    warning(message, duration = 3000) {
        ElMessage.warning({message, duration})
    },
    // 弹出提示
    alert(content) {
        ElMessageBox.alert(content, "系统提示")
    },
    // 错误提示
    alertError(content) {
        ElMessageBox.alert(content, "系统提示", {type: 'error'})
    },
    // 成功提示
    alertSuccess(content) {
        ElMessageBox.alert(content, "系统提示", {type: 'success'})
    },
    // 警告提示
    alertWarning(content) {
        ElMessageBox.alert(content, "系统提示", {type: 'warning'})
    },
    // 通知提示
    notify(content) {
        ElNotification.info(content)
    },
    // 错误通知
    notifyError(content) {
        ElNotification.error(content);
    },
    // 成功通知
    notifySuccess(content) {
        ElNotification.success(content)
    },
    // 警告通知
    notifyWarning(content) {
        ElNotification.warning(content)
    },
    // 确认窗体
    confirm(content, title = "系统提示", confirmButtonText = '确定') {
        return ElMessageBox.confirm(content, title, {
            confirmButtonText: confirmButtonText,
            cancelButtonText: '取消',
        })
    },
    // 确认窗体
    confirmWarning(content, title = "系统提示", confirmButtonText = '确定') {
        return ElMessageBox.confirm(content, title, {
            confirmButtonText: confirmButtonText,
            cancelButtonText: '取消',
            type: "warning",
        })
    },
    // 提交内容
    prompt(content, title = "系统提示", inputPattern, inputErrorMessage = "输入错误") {
        // inputPattern:/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
        // inputErrorMessage: 'Invalid Email',
        if (inputPattern) {
            return ElMessageBox.prompt(content, title, {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: "warning",
                inputPattern: inputPattern,
                inputErrorMessage: inputErrorMessage,
            })

        } else {
            return ElMessageBox.prompt(content, title, {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: "warning",
            })
        }
    },
    // 打开遮罩层
    loading(content) {
        loadingInstance = ElLoading.service({
            lock: true,
            text: content,
            background: "rgba(0, 0, 0, 0.7)",
        })
    },
    // 关闭遮罩层
    closeLoading() {
        loadingInstance.close();
    }
}


export default $modal;
